#pragma once
#include <iostream>
#include "Configuration.h"


namespace Boon
{

class BOON_API Vector2
{
public:
	Vector2();
	Vector2( const float X, const float Y );
	Vector2( const Vector2& o );

	float					Magnitude() const;
	float					SqrMagnitude() const;
	/*! \brief		Returns the dot product between two normalized vectors
					Note: Callie and passed vectors must be normalized!
		\return		float - 
	*/
	float					Dot( const Vector2& normlized ) const;
	float					Angle( const Vector2& rhs ) const;
	void					Normalize();
	Vector2&				Normalized();
	static Vector2			Lerp( const Vector2& from, const Vector2& to, float t );


	Vector2&		operator+( const Vector2& rhs );
	Vector2&		operator=( Vector2 rhs );
	Vector2			operator*( const float value );
	Vector2&		operator*=( const float value );
	Vector2			operator/( const float value );
	Vector2&		operator/=( const float value );

	~Vector2(void);

	void swap( Vector2& rhs );

	float					x, y;
};

}
